#ifndef __PA_COMMON_H__
#define __PA_COMMON_H__

namespace pa
{

enum LLM_ORIGIN_FORMAT
{
    LLM_ORIGIN_HUB,
    LLM_ORIGIN_GGUF
};

#ifndef _NDEBUG
    #define FILE_NAME (strrchr(__FILE__,'/') ? strrchr(__FILE__,'/') + 1 : __FILE__)
    #define LOG(LEVEL, FORMAT, ...) printf("[%s]:[%s]:[%d] " FORMAT "\n", #LEVEL, FILE_NAME,__LINE__,##__VA_ARGS__)
#else
    #define LOG(LEVEL, FORMAT, ...) NULL
#endif

#define PA_LOGE(FORMAT, ...) LOG(ERROR, FORMAT, ##__VA_ARGS__)
#define PA_LOGW(FORMAT, ...) LOG(WARN, FORMAT, ##__VA_ARGS__)
#define PA_LOGI(FORMAT, ...) LOG(INFO, FORMAT, ##__VA_ARGS__)
#define PA_LOGD(FORMAT, ...) LOG(DEBUG, FORMAT, ##__VA_ARGS__)


} // namespace pa

#endif // __PA_COMMON_H__